package lincen.javase.util.collections.map;

import java.util.HashMap;
import java.util.Map;

/**
 * 
 * 双键Map
 * 
 * @author 	林岑
 * @time	2012年10月24日 18:06:17
 * 
 * @param <K1>	键1
 * @param <K2>	键2
 * @param <V>	值
 */
public class DoubleKeyMap<K1, K2, V> {
	
	private Map<K1, Map<K2, V>> map = new HashMap<K1, Map<K2,V>>();
	
	/**
	 * 指定两个键放入一个值
	 * @param k1
	 * @param k2
	 * @param v
	 */
	public void put(K1 k1, K2 k2, V v) {
		Map<K2, V> m = map.get(k1);
		if(m == null) {
			m = new HashMap<K2, V>();
			map.put(k1, m);
		}
		m.put(k2, v);
	}
	
	/**
	 * 通过两个键, 返回对应值
	 * @param k1
	 * @param k2
	 * @return
	 */
	public V get(K1 k1, K2 k2) {
		Map<K2, V> m = map.get(k1);
		if(m == null) {
			return null;
		} else {
			return m.get(k2);
		}
	}
}
